package com.authine.cloudpivot.ext.vo;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.*;

/**
 * @Author: zhoujian
 * @Date: 2020/1/7 15:49
 * @Version 1.0
 */
@Data
@AllArgsConstructor
@Accessors(chain = true)
@RequiredArgsConstructor(staticName = "of")
@ApiModel("商品信息VO")
public class OrderGoodsV1VO {
    @ApiModelProperty("订单商品id")
    private String orderGoodsId;
    @ApiModelProperty("客户订单商品id")
    private String clientOrderGoodsId;
    @ApiModelProperty("供应商订单商品id")
    private String clientVendorGoodsId;
    @ApiModelProperty("客户订单id")
    private String customerOrderId;
    @ApiModelProperty("供应商订单id")
    private String vendorOrderId;
    @ApiModelProperty("供应商名称")
    private String vendorName;
    @ApiModelProperty("商品名称")
    private String name;
    @ApiModelProperty("商品品牌")
    private String brand;
    @ApiModelProperty("商品型号")
    private String model;
    @ApiModelProperty("商品规格")
    private String spec;
    @ApiModelProperty("商品sku")
    private String sku;
    @ApiModelProperty("条形码")
    private String barCode;
    @ApiModelProperty("")
    private String unspsc;
    @ApiModelProperty("金税编码")
    private String goldenTax;
    @ApiModelProperty("图片")
    private String images;
    @ApiModelProperty("描述")
    private String description;
    @ApiModelProperty("技术参数")
    private String technical;
    @ApiModelProperty("包装参数")
    private String packaging;
    @ApiModelProperty("备注")
    private String memo;
    @ApiModelProperty("单位")
    private String unit;
    @ApiModelProperty("包装单位")
    private String packageUnit;
    @ApiModelProperty("数量")
    private BigDecimal num;
    @ApiModelProperty("包装数量")
    private BigDecimal packageNum;
    @ApiModelProperty("无库存货期")
    private Integer delivery;
    @ApiModelProperty("税率")
    private BigDecimal taxRate;
    @ApiModelProperty("运费税率")
    private BigDecimal taxRateFreight;
    @ApiModelProperty("税前商品单价")
    private BigDecimal pretaxPrice;
    @ApiModelProperty("税后商品单价")
    private BigDecimal price;
    @ApiModelProperty("税前运费")
    private BigDecimal pretaxFreight;
    @ApiModelProperty("运费")
    private BigDecimal freight;
    @ApiModelProperty("税前商品合计")
    private BigDecimal pretaxTotal;
    @ApiModelProperty("税后商品合计")
    private BigDecimal total;
    @ApiModelProperty("税前商品共计")
    private BigDecimal pretaxAmount;
    @ApiModelProperty("税后商品运费共计")
    private BigDecimal amount;
    @ApiModelProperty("状态")
    private String status;
    @ApiModelProperty("收货单附件")
    private String attachment;
    @ApiModelProperty("标记信息")
    private String remarkMessages;
    @ApiModelProperty(hidden = true)
    private String quotationGoodsId;
    @ApiModelProperty("订单来源")
    private String orderType;
    @ApiModelProperty("下单组织名称")
    private String customerOrgName;
    @ApiModelProperty("下单人")
    private String memberName;
    @ApiModelProperty("下单时间")
    private Date time;
    @ApiModelProperty("分类")
    private String category;
    @ApiModelProperty("需求部门")
    private String demandDeptName;
    @ApiModelProperty("询价人")
    private String inquiryMemberName;
    @ApiModelProperty("补充澄清")
    private String clarifyTips;
    @ApiModelProperty("是否可申请开票")
    private Boolean canApplyInvoiceCustomer;
    @ApiModelProperty("已发数量")
    private BigDecimal deliveredNum;
    @ApiModelProperty("已收数量")
    private BigDecimal receivedNum;
    @ApiModelProperty("已退数量(退货和退款商品总数量)")
    private BigDecimal refundedNum;
//    @ApiModelProperty("可收数量（已发数量-已收数量-已退货数量）")
//    private Double enableNum;
    @ApiModelProperty("可发数量（可退数量-已发数量+已退货数量 ）")
    private BigDecimal deliverableNum;
//    @ApiModelProperty("可退数量（总数量-已退数量）")
//    private Double refundableNum;
//    @ApiModelProperty("实际收货金额（收货数量-退已发数量）*含税单价")
//    private Double receiveAmount;
    @ApiModelProperty("供应商订单状态")
    private String vendorOrderStatusEnum;
    @ApiModelProperty("客户订单状态")
    private String customerOrderStatusEnum;
    @ApiModelProperty("退款单状态")
    private String returnStatus;


    //中间操作临时使用的数据载体  src = 2 等
    @ApiModelProperty("商品来源类型 1 固买商城，2 寻源商品, 3 企业商城, 4 外部商城订单")
    private Integer src;


}
